package ink.tiptop.dto.req.local.module;

import com.fasterxml.jackson.annotation.JsonProperty;
import ink.tiptop.common.domain.req.PageRequest;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

/**
 * 本地模块结构视图(ZjfModuleLocalView)请求查询类
 *
 * @author zjf
 * @since 2020-07-21 21:43:23
 */
@Getter
@Setter
public class QueryZjfModuleLocalRequest extends PageRequest {
    private static final long serialVersionUID = 896297913936175891L;
    /**
     * 本地模块ID,可以雪花算法
     */
    @JsonProperty("ID")
    private Integer id;
    /**
     * 本地模块所属的跟路径
     */
    @JsonProperty("PARENT")
    private String parent;
    /**
     * 模块名称,如 boot-client-auth
     */
    @JsonProperty("NAME")
    private String name;
    /**
     * 0:依赖, 1:运行服务
     */
    @JsonProperty("TYPE")
    private Integer type;
    /**
     * src文件位置/src
     */
    @JsonProperty("ORI_SRC")
    private String oriSrc;
    /**
     * pom文件位置 /pom.xml
     */
    @JsonProperty("ORI_POM")
    private String oriPom;
    /**
     * target文件位置/target
     */
    @JsonProperty("OUTPUT_TARGET")
    private String outputTarget;
    /**
     * 默认 /target/*.jar 标准输出位置${parent}/${name}/${target}/*.jar
     */
    @JsonProperty("OUTPUT_JAR")
    private String outputJar;
    /**
     * 依赖分离的lib目录
     */
    @JsonProperty("OUTPUT_LIB")
    private String outputLib;
    /**
     * 配置分离的配置目录
     */
    @JsonProperty("OUTPUT_RESOURCE")
    private String outputResource;
    /**
     * 0:不忽视,1:忽视
     */
    @JsonProperty("IGNORE")
    private Integer ignore;
    /**
     * 关联远程视图zjf_service_remote_view.id
     */
    @JsonProperty("REMOTE_ID")
    private Integer remoteId;
    /**
     * 说明
     */
    @JsonProperty("DESC")
    private String desc;
    /**
     * 关联zjf_user_module_version.version
     */
    @JsonProperty("VERSION")
    private String version;
    /**
     * 关联zjf_user_module_version.user
     */
    @JsonProperty("USER")
    private String user;
    /**
     * 0:标准输出位置,1自定义输出位置
     */
    @JsonProperty("OUTPUT_TYPE")
    private Integer outputType;

    /**
     * 0-9999 install到本地的优先级
     */
    @JsonProperty("ORDER")
    @Min(value = 0, message = "优先级最小值0")
    @Max(value = 9999, message = "优先级最大值9999")
    private Integer order;
}